#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QListWidgetItem>
#include <QSlider>  // 添加滑块类
#include <QKeyEvent>  // 新增：键盘事件支持

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(int userId,QWidget *parent = 0);
    ~MainWindow();
    void initPlayer();
    void addMusic();

protected:
    // 新增：键盘事件处理
    void keyPressEvent(QKeyEvent *event) override;

private slots:
    void on_pushButton_look_clicked();

    void on_playerPositionChanged(qint64 position);

    void on_listWidget_music_itemDoubleClicked(QListWidgetItem *item);

    void on_horizontalSlider_sliderReleased();

    void on_pushButton_change_clicked();

    void on_pushButton_pri_clicked();

    void on_pushButton_next_clicked();

    void on_comboBox_currentIndexChanged(int index);

    void on_volumeSlider_valueChanged(int value);

    void on_speedSlider_valueChanged(int value);

    // 新增：播放列表索引变化时更新ListWidget选中项
    void handlePlaylistIndexChanged(int index);
    // 新增：刷新历史记录
    void on_pushButton_refreshHistory_clicked();
    // 新增：历史记录项双击事件
    void on_listWidget_history_itemDoubleClicked(QListWidgetItem *item);

private:
    Ui::MainWindow *ui;
    QString path;
    QStringList musicFiles;
    QMediaPlayer *players;
    QMediaPlaylist *playlist;

    int currentUserId; // 新增：当前登录用户ID
    void saveCurrentPlayHistory(); // 新增：保存当前播放记录的工具函数
    // 新增：加载历史记录
    void loadPlayHistory();
    // 新增：快进功能
    void fastForward();
    // 新增：静音功能
    void toggleMute();
    // 新增：静音相关变量
    bool isMuted;
    int volumeBeforeMute; // 静音前的音量
};

#endif // MAINWINDOW_H
